package com.qdlc.p2p.dal.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Repository;

import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dao.UserInviteDao;
import com.qdlc.p2p.dal.dto.UserInvite;
import com.qdlc.p2p.dal.model.UserInviteModel;
import com.qdlc.p2p.dal.mybatis.model.mapper.UserInviteMapper;
import com.qdlc.p2p.dal.mybatis.pager.PageProxyBuilder;
import com.qdlc.p2p.dal.mybatis.pager.core.PageParameter;

/**
 * 邀请人DAO
 * @author linya
 * @date 2016-04-21
 */
@Repository("userInviteDao")
public class UserInviteDaoImpl implements UserInviteDao {

    @Resource
    UserInviteMapper userInviteMapper;

    /**
     * 插入记录
     * @param userInvite
     */
    @Override
    public UserInvite insert(UserInvite userInvite) {
        userInviteMapper.insert(userInvite);
        return userInvite;
    }

    /**
     * 根据UuserId获取唯一的邀请人
     * @param userId
     */
    @Override
    public UserInvite findByUserId(Long userId) {
        return userInviteMapper.findByUserId(userId);
    }

    /**
     * 根据UuserId获取唯一的邀请人
     * @param param
     */
    @Override
    public PageDataList<UserInvite>  findPageList(UserInviteModel param) {
        if(param.getPage()==0){
            param.setPage(1);
        }
        if(param.getRows()==0){
            param.setRows(10);
        }
        PageProxyBuilder<UserInviteMapper> builder = PageProxyBuilder.newBuilder( UserInviteMapper.class);
        builder.setPageParameter(param.getPage(),param.getRows());
        List<UserInvite> userInviteList = builder.createProxy().getUserInviteList(param);
        PageParameter pageParameter = builder.getPageParameter();
        PageDataList<UserInvite> pageDataList = new PageDataList<UserInvite>(pageParameter.convert2Page(), userInviteList);
        return pageDataList;
    }

}
